package com.chub.study.modules.base;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.Data;

import java.io.Serializable;

/**
 * @author : chub
 * @version : V1.0.0
 * @fileName : BaseVO.java
 * @description : TODO
 * @createTime : 2024-08-07 17:48
 */
@Data
public abstract class BaseVO<T> implements Serializable {

    private static final long serialVersionUID = 1L;

    // 当前页号
    @TableField(exist = false)
    protected int pageNo = 1;

    // 每页条数
    @TableField(exist = false)
    protected int pageSize = 3;

    /**
     * @param :
     * @description : TODO
     */
    public BaseVO() {
        super();
        pageNo = pageNo < 1 ? 1 : pageNo;
        pageSize = pageNo < 1 ? 10 : pageSize;
    }

    /**
     * @param : pageNo
     * @param : pageSize
     * @description : TODO
     */
    public BaseVO(int pageNo, int pageSize) {
        super();
        this.pageNo = pageNo < 1 ? 1 : pageNo;
        this.pageSize = pageSize < 1 ? 10 : pageSize;
    }

    /**
     * @description : TODO
     *
     * @param  : null
     * @return : null
     */
    public <T> IPage<T> toPage() {
        return Page.of(pageNo = pageNo < 1 ? 1 : pageNo, pageSize = pageNo < 1 ? 10 : pageSize);

    }

}
